<?xml version="1.0" encoding="UTF-8"?>
		<sect1 id="ch02-7">
			<title>KAG的语法</title>
			<sect2 id="ch02-3-1">
				<title>基本格式</title>
				<para>KAG使用的剧本格式称作KAG Script，文件扩展名为.ks。</para>
				<para>该文件是ANSI或Unicode（UCS2）编码的文本文件，可以用记事本等纯文本编辑器编辑。</para>
				<para>脚本内的文字除下面将讲到的注释、命令、段落标签等内容外，一律被当作剧本文本被处理显示。</para>
				<para>
					<emphasis>KS中用于控制引擎动作的部分，本文档一般称之为“命令”。由于KAG可以被视作一种标记语言，所以这些命令也被称作标记（Tag）。</emphasis>
				</para>
				<para>每个标签都可能有若干个属性（也可能完全没有属性），用于精确控制指令的行为。调用中传递的属性一般都需要附带一个属性值，定义该属性指定的具体对象（例如对于“目标文件(storage)”这样的属性，属性值一般就是文件名），但在特殊情况下也可能不需要指定这个值。</para>
			</sect2>
			<sect2 id="ch02-3-2">
				<title>标记命令</title>
				<para>标记命令类似于HTML等标记语言，可以将控制指令插入文本当中。</para>
				<para>命令的格式为：</para>
				<para>
					<emphasis>[命令名 属性1=值1 属性2=值2...]</emphasis>
				</para>
				<example id="ex2-1">
					<title>标记命令的范例</title>
					<para>以下的代码将在KAGeXpress中显示一幅背景图片。</para>
					<programlisting>[bg file=图片1]</programlisting>
					<para>下面是说明使用方法的例子。</para>
					<programlisting>这是一句话，[r]可以插入标记。[l][r]
[bg file=图片1]
 当然在行首插入标记命令也是可以的。[l][r]
[bg file=图片1] 比如像这样。[l][r]</programlisting>
				</example>
				<note>
					<para>bg是切换背景的命令，l和r是文字排版相关的命令。关于这些命令的详细功能将在解说命令时说明。详细请参见<xref linkend="ch03"/>
					</para>
				</note>
				<para>这种命令格式可以随意插入剧本文字中。</para>
			</sect2>
			<sect2 id="ch02-3-3">
				<title>行命令</title>
				<para>用类似于NScripter的指令格式书写命令标签，一般占用单独的一行，用于较长的指令。</para>
				<para>命令的格式为：</para>
				<para>
					<emphasis>@命令名 属性1=值1 属性2=值2...</emphasis>
				</para>
				<para>这种语法格式一般要求一条命令单独使用一行。</para>
				<example id="ex2-2">
					<title>行命令的范例</title>
					<programlisting>@bg file=图片1</programlisting>
					<para>下面是使用方法的例子。</para>
					<programlisting>@bg file=图片1
 一般来说，行命令是单独占用一行的。</programlisting>
				</example>
				<para>请注意，KAG的标记命令和行命令两种格式在效果上是等效的。</para>
				<para>上面的例子，和<link linkend="ex2-1">标记命令的例子</link>执行的结果是完全相同的。</para>
				<para>下文介绍其他命令时，将只说明命令的名称。例如，我们说到的“p命令”或“p标记”，其正确的调用方法是在ks中插入“[p]”或者“@p”。</para>
			</sect2>
			<sect2 id="ch02-3-4">
				<title>段落标签</title>
				<para>段落标签占用单独的一行，代表了一个段落/章节的开始。</para>
				<para>分支选项、剧本跳跃、进度的存取都以段落标签作为标志。例如剧本跳跃时，就只能跳跃到指定段落标签的开始。</para>
				<para>命令的格式为：</para>
				<para>
					<emphasis>*标签名|显示名</emphasis>
				</para>
				<para>标签名是标签的内部名称，建议使用简单但不重复的英文数字组合。</para>
				<para>显示名是显示在存档界面等地方的名称，可以使用较复杂的中文名。</para>
				<example id="ex2-3">
					<title>段落标签的范例</title>
					<programlisting>*ch01|第一章

这里是华丽的第一章。[l][r]</programlisting>
				</example>
				<para>则如果在这章内（这个标签后，下一个标签前）存档，存档界面中显示该存档的进度名称为“第一章”。</para>
				<para>每次系统跳转到这个段落的时候，就会从段落标示的地方开始执行。</para>
				<note>
					<para>与段落跳转相关的命令将在下文说明。详情参见<xref linkend="ch03-5"/>
					</para>
				</note>
			</sect2>
			<sect2 id="ch02-3-5">
				<title>注释</title>
				<para>
					<emphasis>以;符号开始，从分号到该行结尾的所有内容将被忽略。</emphasis>
				</para>
				<para>注释主要用于写入开发者的备忘、代码说明等内容。</para>
				<example id="ex2-4">
					<title>注释的范例</title>
					<programlisting>*ch01|第一章

这里是华丽的第一章。[l][r] ;这是注释1

;这是注释2</programlisting>
				</example>
			</sect2>
		</sect1>